from pydub import AudioSegment


def slow_down_audio(input_file, output_file, speed=0.8):
    """
    调慢音频文件的语速
    :param input_file: 输入的 WAV 文件路径
    :param output_file: 输出的慢语速 WAV 文件路径
    :param speed: 语速调整系数，小于 1 为减慢，大于 1 为加快，默认为 0.8
    """
    # 加载音频文件
    audio = AudioSegment.from_wav(input_file)

    # 调整语速
    new_frame_rate = int(audio.frame_rate * speed)
    audio = audio._spawn(audio.raw_data, overrides={'frame_rate': new_frame_rate})
    audio = audio.set_frame_rate(44100)  # 恢复原始采样率

    # 保存调整后的音频
    audio.export(output_file, format="wav")


if __name__ == "__main__":
    input_wav = "chapter01.wav"
    output_wav = "slow.wav"
    slow_down_audio(input_wav, output_wav)
    
